package com.thz.system.service.record;

import com.thz.common.dto.ConversionRecordDTO;
import com.thz.common.entity.ConversionRecord;

import java.util.List;

/**
 * 统一转换记录服务接口
 * 
 * @author THZ
 * @date 2025
 */
public interface IConversionRecordService {
    
    /**
     * 创建转换记录
     * 
     * @param record 转换记录
     * @return 创建的记录
     */
    ConversionRecord createRecord(ConversionRecord record);
    
    /**
     * 更新转换记录
     * 
     * @param record 转换记录
     */
    void updateRecord(ConversionRecord record);
    
    /**
     * 根据用户ID获取转换历史
     * 
     * @param userId 用户ID
     * @param limit 数量限制
     * @return 转换记录列表
     */
    List<ConversionRecordDTO> getUserConversionHistory(Long userId, int limit);
    
    /**
     * 根据IP地址获取转换历史
     * 
     * @param ipAddress IP地址
     * @param limit 数量限制
     * @return 转换记录列表
     */
    List<ConversionRecordDTO> getConversionHistoryByIp(String ipAddress, int limit);
    
    /**
     * 删除转换记录
     * 
     * @param id 记录ID
     */
    void deleteRecord(Long id);
    
    /**
     * 根据引用ID和转换类型查找统一转换记录
     * 
     * @param referenceId 引用ID（对应具体转换记录表的ID）
     * @param conversionType 转换类型
     * @return 统一转换记录，如果不存在返回null
     */
    ConversionRecord findByReferenceId(Long referenceId, String conversionType);
}

